package com.wlb365.financing.modules.trade.service;

import com.wlb365.financing.modules.trade.request.TradeQueryProcessDataDetailReq;
import com.wlb365.financing.modules.trade.response.TradeProcessDataListResult;
import com.wlb365.financing.modules.trade.response.TradeQueryDetailRes;
import com.wlb365.financing.modules.trade.response.TradeQueryPageRes;
import com.wlb365.financing.modules.trade.response.TradeQueryProcessDataDetailRes;
import com.wlb365.financing.modules.trade.response.TradeQueryProcessDataRes;
import com.wlb365.financing.modules.trade.response.TradeQueryProcessRes;
import com.wlb365.financing.modules.trade.vo.TradeQueryVO;

/**
 * 交易数据服务类.
 *
 * @author zwh
 * @version 1.0
 */
public interface ITradeService {
    /**
     * 分页查询交易列表.
     * @param queryVO 查询条件
     * @author zwh
     * @return com.wlb365.financing.modules.trade.response.TradeQueryPageRes
     **/
    TradeQueryPageRes queryTrade(TradeQueryVO queryVO);

    /**
     * 查询交易详情.
     * @param id 交易数据id
     * @author zwh
     * @return com.wlb365.financing.modules.trade.response.TradeQueryDetailRes
     **/
    TradeQueryDetailRes queryTradeDetail(String id);


    /**
     * 获取阶段数据
     * @param id 交易数据id
     * @author lh
     * @return com.wlb365.financing.modules.trade.response.TradeQueryProcessRes
     **/
    TradeQueryProcessRes queryTradeProcess(String id);

    /**
     * 获取阶段概要数据
     * @param processId 阶段id
     * @author lh
     * @return com.wlb365.financing.modules.trade.response.TradeQueryProcessDataRes
     **/
    TradeQueryProcessDataRes queryTradeProcessData(String processId);

    /**
     * 获取阶段概要数据
     * @param tradeQueryProcessDataDetailReq
     * @author lh
     * @return com.wlb365.financing.modules.trade.response.TradeQueryProcessDataRes
     **/
    TradeQueryProcessDataDetailRes queryProcessDataDetail(TradeQueryProcessDataDetailReq tradeQueryProcessDataDetailReq);

    /**
    * 获取阶段数据详情列表.
    * @param tradeId 交易id
    * @param dataType 阶段数据类型
    * @author zwh
    * @return com.wlb365.financing.modules.trade.response.TradeProcessDataListResult
    **/
    TradeProcessDataListResult queryProcessDataDetailList(String tradeId, String templateId, String dataType);
}
